Computer appliances are devices with one or a few specific functions and limited ability to configure. A computer appliance may be an embedded system (a special-purpose system in which the computer is completely encapsulated by the device it controls). A router is an example of a computer appliance which forwards data packets across a network toward their destinations, through a process known as routing. A Network-Attached Storage (NAS) device is an example of a computer appliance which connects to a computer network to provide centralized data access and storage to a diverse range of differing network clients. A Storage Area Network (SAN) device is an example of a computer appliance which allows connection to remote targets such as disks and tape drives on a network for block level I/O. Synchronous core files (a recorded state of working memory at a specific time) may be generated to aid in diagnosing potential problems with a computer appliance.
Synchronous core files may not provide enough information to diagnose potential problems with a computer appliance. Additionally, core files generated through software rather than hardware means may interfere with the running computer appliance, reducing the value of the core file that is generated for diagnosing potential problems with the computer appliance. The value of a core file is directly related to the content contained within the core file and the ease and visibility of that content. A support collateral (additional information related to the computer appliance used to support diagnosis of potential problems), such as performance data and kernel profiling, may be required to supplement the core file in order to diagnose the potential problem. The support collateral may provide information not captured in the core file, yet essential to diagnosing the potential problem with the computer appliance. The support collateral may need to have some relation to the core file to have value in supplementing the core file in diagnosing potential problems with the computer appliance and thus needs to be generated within a certain proximity of time to the generation of the core file. However, often a support collateral is not generated, is not generated correctly, or is not generated within sufficient proximity of time to the generation of the core file such that the support collateral supplements the core file in diagnosing potential problems with the computer appliance. This results in unnecessary downtime for the computer appliance and in the inability to diagnose potential problems with the computer appliance efficiently.
A panic core dump occurs when a computer appliance encounters an unrecoverable error from which it cannot continue its operation. Typically, a core file will then be automatically generated at the point of fault. However, if an error serious enough to cause a panic core dump has not occurred, a potential problem with a computer appliance may need to be discovered before a core file would be generated and utilized to diagnose the potential problem. A computer appliance may have a problem, which is serious enough to impact performance, but is not serious enough to cause a panic core dump. A computer appliance, which has such a problem, will continue to run in an affected manner until the problem either becomes serious enough to cause a panic core dump or until the problem is discovered and a core file is generated to diagnose the problem.
Consequently, it would be desirable to automatically generate a support collateral when generating a core file in order to diagnose potential problems with a computer appliance. It would also be desirable to automatically detect potential problems with a computer appliance and generate a core file to aid in diagnosing the potential problem.